package com.zhairuihao.classc;

import com.jfinal.aop.Before;
import com.jfinal.aop.Inject;
import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.POST;
import com.jfinal.json.FastJson;
import com.jfinal.kit.Ret;
import com.zhairuihao.common.model.Blog;
import com.zhairuihao.common.model.Classc;

/**
 * 本 demo 仅表达最为粗浅的 jfinal 用法，更为有价值的实用的企业级用法 详见 JFinal 俱乐部: http://jfinal.com/club
 *
 * <p>所有 sql 与业务逻辑写在 Service 中，不要放在 Model 中，更不 要放在 Controller 中，养成好习惯，有利于大型项目的开发与维护
 */
public class ClassController extends Controller {

    @Inject
    ClassService service;

    public void list() {
        renderJson(Ret.ok("data", service.list()));
    }

    public void list2() {
        Integer paraToInt = getParaToInt();
        renderJson(Ret.ok("data", service.list(paraToInt)));
    }

    /**
     * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中， 并要对数据进正确性进行验证，在此仅为了偷懒
     */
    public void save() {
        String json = getRawData();
        Classc user = FastJson.getJson().parse(json, Classc.class);
        user.save();
        renderJson(Ret.ok());
    }

    /**
     * save 与 update 的业务逻辑在实际应用中也应该放在 serivce 之中， 并要对数据进正确性进行验证，在此仅为了偷懒
     */
    public void update() {
        String json = getRawData();
        Classc user = FastJson.getJson().parse(json, Classc.class);
        Classc byId = service.findById(user.getId());
        byId.setName(user.getName());
        byId.update();
        renderJson(Ret.ok());
    }

    public void delete() {
        service.deleteById(getParaToInt());
        redirect("/admin/classes");
    }
}
